package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import com.example.demo.pojo.JsonResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * Controller层转发层 只是将 Service处理过的数据转发给 客户端
 * 这里 接收页面参数 传给Service处理 处理完后 封装一下 又返回给客户端
 * 在controller中一般完成对对象的封装，这样在service中只需要处理对象
 */
@RestController
@RequestMapping("/user")
@Api(value = "UserController")
public class UserController {

    @Autowired
    private UserService userService;

    @ApiOperation(value = "获取用户列表", response = JsonResult.class)
    @GetMapping(value = "/findAll")
    public JsonResult findAllUser() {

        final List<User> findAllUser = userService.findAll();

        if (findAllUser.size() > 0) {
            //有数据
            return new JsonResult(findAllUser);
        } else {
            //没数据
            return new JsonResult(401, "未知异常");
        }

    }


    /**
     * 用户注册
     *
     * @param user 用户信息
     */
    @ApiOperation(value = "用户注册",response = JsonResult.class)
    @PostMapping(value = "/register")
    public JsonResult registerAndLogin(User user) {
        return null;
    }

    /**
     * 用户登录
     *
     * @param user 用户对象 包含 用户名 和 密码
     */
    @ApiOperation(value = "用户登录",response = JsonResult.class)
    @PostMapping(value = "/login")
    public JsonResult login(User user) {

        return null;
    }

    /**
     * 修改用户信息
     *
     * @param user 用户信息
     */
    @ApiOperation(value = "修改用户信息",response = JsonResult.class)
    @RequestMapping(value = "/update", method = RequestMethod.POST)
    public JsonResult update(User user) {
        return null;
    }


}
